package com.simplefan.system.client.applet.ui.component.twaver;

import java.awt.Point;

import twaver.Element;
import twaver.Port;


public class SRoutePort extends Port {    
  public SRoutePort(String id){
    super(id);
  }
  
  @Override
  public void setLocation(double x, double y) {
    Element parent = this.getParent();
    if (parent != null) {
      double cx = parent.getX() + 15;
      double cy = parent.getY() + 20;
      if (Math.abs(x - cx) > 25d) {
        if (x > cx) {
          x = cx + 25d;
        }
        if (x < cx) {
          x = cx - 25d;
        }
      }
      if (Math.abs(y - cy) > 25d) {
        if (y > cy) {
          y = cy + 25d;
        }
        if (y < cy) {
          y = cy - 25d;
        }
      }
    }
    
    super.setLocation(x, y);
  }

  @Override
  public void setLocation(int x, int y) {
//    Element parent = this.getParent();
//    if (Math.abs(x - parent.getX()) > 40) {
//      if (x > parent.getX()) {
//        x = (int) parent.getX() + 40;
//      }
//      if (x < parent.getX()) {
//        x = (int) parent.getX() - 40;
//      }
//    }
//    if (Math.abs(y - parent.getY()) > 40) {
//      if (y > parent.getY()) {
//        y = (int) parent.getY() + 40;
//      }
//      if (x < parent.getY()) {
//        y = (int) parent.getY() - 40;
//      }
//    }
    super.setLocation(x, y);
  }

  @Override
  public void setLocation(Point location) {
//    Element parent = this.getParent();
//    double x = location.getX();
//    double y = location.getY();
//    if (Math.abs(x - parent.getX()) > 40d) {
//      if (x > parent.getX()) {
//        x = parent.getX() + 40d;
//      }
//      if (x < parent.getX()) {
//        x = parent.getX() - 40d;
//      }
//    }
//    if (Math.abs(y - parent.getY()) > 40d) {
//      if (y > parent.getY()) {
//        y = parent.getY() + 40d;
//      }
//      if (y < parent.getY()) {
//        y = parent.getY() - 40d;
//      }
//    }
//
//    super.setLocation(new Point((int)x, (int)y));
    super.setLocation(location);
  }
}
